This relates to graphics processing.
Graphics processing may be performed by the graphics processing unit. Many stages of the graphics processing unit are programmable. However, the rasterizer remains fixed function or non-programmable. The reason for this is that special purpose hardware can be made more efficient in terms of power and performance than a software implementation.
However, some advanced rendering algorithms, such as stochastic rasterization and motion blur, depth of field, direct NURBS rendering, font rendering and curved reflections require custom rasterization algorithms. These algorithms may be implemented on current hardware by rendering an overly conservative shape and using a pixel shader that discards samples not overlapping the shape being rasterized (i.e. triangles that fail the triangle-sample overlap test). In addition, the geometry shader may be used to compute a set of bounding triangles to ensure that the pixel shader is executed for at least all samples overlapping the shape.
For more complex shapes, bounding triangles can typically not be made very tight, resulting in many pixel shader executions for samples that do not overlap the shape and end up being discarded. As the pixel shaders for these algorithms are often very complex, these unnecessary invocations may have severe performance implications.